<?php
/*\
 *
 *
 *
 *
\*/

function oh_debug_div_open() {
   return '<div style="'
		. 'background:#ccc;'		
		. 'color:#700;'		
		. 'width:100%;'		
		. 'border:1px solid #777;'		
		. 'font-family:monospace;'		
		. 'font-size:14px;'		
		. 'margin-bottom:1px;'		
		. '">'
		. '<div style="'
		. 'margin:2px 5px 2px 5px;'		
		. '">';
}

function oh_debug_div_close() {
   return '</div>'
		. '</div>';
}

function oh_debug_small_open() {
   return '<div style="'
		. 'font-size:10px;'					
		. 'color:#555;'		
		. '">';
}

function oh_debug_small_close() {
   return '</div>';
}

function oh_debug_pre_open() {
   return '<pre style="'
		. 'color:#333;'		
		. 'font-family:monospace;'		
		. 'font-size:12px;'		
		. 'border:1px solid #aaa;'		
		. 'background:#f1f1f1;'		
		. 'margin:2px 0px 0px 0px;'		
		. 'padding:4px;'		
		. '">';
}

function oh_debug_pre_close() {
   return '</pre>';
}

function oh_dump($o,$t="") {
	echo oh_box_open("frame");	
		if ($t) {
			echo $t; 
		} else {
			echo '$'.oh_var_name($o);
		}			
		echo oh_box_open("small");	
			echo oh_debug_at("oh_dump");			
		echo oh_box_close();		
		echo oh_box_open("pre");	
			var_dump($o);
		echo oh_box_close();
	echo oh_box_close();
}
	
function oh_code($code) {
	echo oh_debug_div_open();
	highlight_string('<?php '."\n".$code."\n".'?>');
	echo oh_debug_div_close();
}
	
function oh_message($msg,$stop = "oh") {
	$stopline = oh_debug_at($stop);
	echo oh_box_open("frame");				
		if ($stopline) {
			echo $msg;
			echo oh_box_open("small");				
				echo $stopline;					
			echo oh_box_close();		
		} else {
			echo oh_box_open("inportant");				
			echo $msg;
		
		}
	echo oh_box_close();
}

function oh_debug_at($stop = "oh") {
	$bt = debug_backtrace();
	foreach($bt as $k=>$v) {
		if (strtolower($v['function']) == $stop) {
			return 'in "'.$v['file'].'" at line '.$v['line'];
		}
	}	
}
